# (入门)输出1~100之间的整数（包含本身）
# for i in range(1, 101):
#     print(i)
    


#(进阶)小红有一个大小为2×2的矩阵，如果对于每一行，第一个数小于第二个数，对于每一列，第一个数小于第二个数，那么这个矩阵就是美丽的。现在小红可以对矩阵顺时针旋转，她想知道，经过若干次旋转，能否得到美丽的矩阵。一个矩阵[[1,2],[3,4]] 经过一次旋转过后，变成[[3,1],[4,2]]。对于每组数据，如果能得到美丽的矩阵，输出“Yes”，否则输出“No”。
def once_beauty(matrix):
    return matrix[0][0]<matrix[0][1] and matrix[1][0]<matrix[1][1] and matrix[0][0]<matrix[0][1] and matrix[0][1]<matrix[1][1]

def rotate_matrix(matrix):
    return [
        matrix[1][0],matrix[0][0],
        matrix[1][1],matrix[0][1]
    ]

def is_beauty(matrix):
    rotations=[matrix,rotate_matrix(matrix),rotate_matrix(matrix),rotate_matrix(matrix)]
    for rotated in rotations:
        if is_beauty(rotated):
            return 'Yes'
    return 'No'

a,b,c,d=map(int,input().split())
matrix=[[a,b],[c,d]]
print(is_beauty(matrix))
